Examples for the PointLine 3D Chart can be found in the SciChart WPF Examples Suite which can be downloaded from the SciChart Website or our SciChart.WPF.Examples Github Repository.
3D Point-Line Charts are provided by the PointLineRenderableSeries3D type.
The PointLineRenderableSeries3D supports multiple pointmarkers, including:
3D Marker Types
- SpherePointMarker3D - a 3D Sphere at each point
- CubePointMarker3D - 3D Cube at each point
- PyramidPointMarker3D - a 3D Pyramid at each point
- CylinderPointMarker3D - a 3D Cylinder at each point
Fast 2D Marker types
- PixelPointMarker3D - a single pixel at each point
- QuadPointMarker3D - a Quad (flat square) facing the camera at each point
- EllipsePointMarker3D - a flat ellipse facing the camera at each point
- TrianglePointMarker3D - a flat triangle facing the camera at each point
- CustomPointMarker3D - custom flat textured markers facing the camera at each point
Declaring a 3D Point Line Series
To declare a 3D Point Line Series with individual sizes & colors, use the following code.
View |
Copy Code |
---|---|
<s3D:SciChart3DSurface x:Name="SciChart" Grid.Column="1" BorderThickness="0" WorldDimensions="200,100,200"> <s3D:SciChart3DSurface.RenderableSeries> <!-- To create a Scatter Chart, create a ScatterRenderableSeries3D and use a 3D point marker type --> <s3D:PointLineRenderableSeries3D x:Name="PointLineSeries3D" IsAntialiased="True" IsLineStrips="False" Opacity="1" StrokeThickness="2"> <s3D:PointLineRenderableSeries3D.PointMarker> <s3D:SpherePointMarker3D Opacity="1" Size="2" /> </s3D:PointLineRenderableSeries3D.PointMarker> </s3D:PointLineRenderableSeries3D> </s3D:SciChart3DSurface.RenderableSeries> <s3D:SciChart3DSurface.XAxis> <s3D:NumericAxis3D GrowBy="0.1,0.1" /> </s3D:SciChart3DSurface.XAxis> <s3D:SciChart3DSurface.YAxis> <s3D:NumericAxis3D GrowBy="0.1,0.1" /> </s3D:SciChart3DSurface.YAxis> <s3D:SciChart3DSurface.ZAxis> <s3D:NumericAxis3D GrowBy="0.1,0.1" /> </s3D:SciChart3DSurface.ZAxis> </s3D:SciChart3DSurface> |
Code Behind |
Copy Code |
---|---|
private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { var xyzDataSeries3D = new XyzDataSeries3D<double>(); var random = new Random(0); for (var i = 0; i < Count; i++) { var x = 5*Math.Sin(i); var y = i; var z = 5*Math.Cos(i); Color? randomColor = Color.FromArgb(0xFF, (byte) random.Next(50, 255), (byte) random.Next(50, 255), (byte) random.Next(50, 255)); var scale = (float) ((random.NextDouble() + 0.5)*3.0); xyzDataSeries3D.Append(x, y, z, new PointMetadata3D(randomColor, scale)); } PointLineSeries3D.DataSeries = xyzDataSeries3D; } |
NOTE: You can also declare RenderableSeries using full MVVM (series ViewModels) using the SeriesBinding MarkupExtension. Please see MVVM DataSeries / RenderableSeries API for more details.
Property IsLineStrips
The Point Line 3D Series also allows you to split the line at every other point. useful if you want to use it to draw a free-form grid. To enable this behaviour, set the IsLineStrips property. This property is used in the 3D Charts > Tooltips & Hit-Test > Series Tooltips 3D Charts example.